package com.cty._01_Base._04_FindInPartiallySortedMatrix;

/**
 * @Auther: cty
 * @Date: 2020/6/26 8:56
 * @Description: 面试题4：二维数组中的查找
 * 题目：
 *      在一个二维数组中，每一行都按照从左到右递增的顺序排序，每一列都按照从上到下递增的顺序排序。
 *      请完成一个函数，输入这样一个二维数组和一个整数，判断数组中是否含有该整数。
 * @version: 1.0
 */
public class FindInPartiallySortedMatrix {
    /**
     * 二维数组中的查找
     * @param matrix
     * @param rows
     * @param columns
     * @param num
     * @return
     */
    public static boolean isFound(int[][] matrix, int rows, int columns, int num){
        if(matrix!=null && rows>0 && columns>0){
            int row = 0;
            int column = columns - 1;

            while(row<rows && column>=0){
                if(matrix[row][column] == num)
                    return true;
                else if(matrix[row][column] > num)
                    column--;
                else  // matrix[row][column] < num
                    row++;
            }  // end while
        }  // end if
        return false;
    }  // end isFound()

}  // end class
